import axios from "axios";
import { ElMessage } from "element-plus";

// 创建 axios 实例
const axiosInstance = axios.create({
  baseURL: "https://localhost:7063", // 
  timeout: 10000, // 设置请求超时时间 10s
});

// 请求拦截器
axiosInstance.interceptors.request.use(
  (config) => {
    // 在请求头中添加 JWT
    const token = sessionStorage.getItem("token");
    if (token) {
      config.headers["Authorization"] = `Bearer ${token}`;
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 响应拦截器
axiosInstance.interceptors.response.use(
  (response) => {
    //如果请求没有成功
    if (!response.data.isSuccess) {
      ElMessage.error(response.data.msg);
      return
    }

    // //如果请求成功并且不包含 data 字段  增删改操作
    // if (!response.data.data) {
    //   ElMessage.success(response.data.msg);
    // }

    // 如果响应数据中包含 data 字段，直接返回 data 字段内容
    return response.data;
  },
  (error) => {
    // 错误处理  //只要不等于200 都会进入这里
    const { response,message } = error;

    if (response) {
      switch (response.status) {
        case 401:
          ElMessage.error("请先登录"+response.data);
          // 跳转到登录页面
          break;
        default:
          console.error(`请求错误：${response.status}`);
      }
    } else {
      console.error("网络错误，请检查您的连接");
    }

    return Promise.reject(error);
  }
);

// 导出 axios 实例
export default axiosInstance;